#pragma once

#include <memory>

enum EStopMoveReason {
  kStopMoveReasonSuccess = 0,
  kStopMoveReasonPathFindError,
  kStopMoveReasonZeroSpeed,
  kStopMoveReasonPassClosed,
  kStopMoveReasonStopCommand,
  kStopMoveReasonMarchAI,
  kStopMoveReasonUnknown = 100,
};

enum MSEntityComponentType {
  kEntityComponentNone = 0,
  kEntityComponentOwner,
  kEntityComponentEffect,  // Ч��
  kEntityComponentStatus,  // ״̬
  kEntityComponentMove,
  kEntityComponentArmy,       // army
}
;
enum class RegionSystemType {
  kNone = 0,
  kMap,
  kMapView,
  kPlayer,
  kFindPath,
};


enum EMapGridStatusType : uint32_t {
  kMapGridStatusObstacle = 0,
  kMapGridStatusTypeNoRefresh = 1,
  kMapGridStatusTypeNoFly = 2,
  kMapGridStatusTypeFree = 3,
};

enum class EntityType {
  kEntityType_Town = 1,
  kEntityType_March = 2
};

const static uint32_t kGridSize = 6;
const static uint32_t kInvalidGridIndex = 0xffffffff;
const static uint32_t kHeight = 30;
const static uint32_t kWidth = 30;
